home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 1
/
The Arsenal Files (Arsenal Computer).ISO
/
bbs
/
tm0207.txt
< prev
next >
Wrap
Text File
|
1994-01-23
|
4KB
|
87 lines
SEA Technical Memorandum #0207, SEAdog 4.50; Chat Session Protocol
Last updated: December 8, 1988
Copyright 1988 by System Enhancement Associates, Inc.
SEAdog 4.50
Chat Session Protocol
This document describes the protocol used in a "chat session" as
implemented in version 4.50 of the SEAdog mail system.
The chat session protocol makes extensive use of a "string transmit"
function, which is identical to that used by the file request mechanism.
The transmitter first sends a "signal byte" indicating what sort of string
is being sent. This is then followed by the actual string, which is
terminated with an ETX (hex value 03h), followed by a two-byte CRC of the
string characters (everything after the initial signal character and before
the ETX). The CRC is sent high byte first, then low byte. The string
receiver responds with an ACK (hex value 06h) if the string was received
correctly, or a NAK (hex value 15h) if it was not.
A chat session begins with a chat initiation request. During this phase
the two systems involved have different roles, and it is important to keep
in mind who is doing what. We will distinguish the two systems by
referring to the system that placed the call as the "swooner", and the
system that answered as the "swain". With that in mind, a chat session is
initiated as follows:
1) The swooner places a call to the swain. On getting carrier he whacks
return and they match baud rates.
2) Instead of sending a TSYNC for a mail session, he sends an AHOY (hex
value 0EAh) to request a chat session.
3) If the swain is unwilling to engage in a chat session, she responds
with a CAN (hex value 18h). Otherwise she responds with another AHOY,
followed by an ENQ (hex value 05h) to request the swooner's name.
4) The swooner responds to the ENQ by transmitting an identifying string
(such as his name) with a signal of SOH (hex value 01h).
5) Once the swain has properly received and acknowledged the string, she
pauses to tell anyone at the console who is calling and asks if they
wish to chat. If they say "no" (or fail to answer in thirty seconds),
the swain transmits a CAN (hex value 18h) and ends negotiation.
6) Meanwhile, the swooner has been impatiently sending ENQ after ENQ (hex
value 05h). If a human operator accepts chat, the swain finally
responds to the ENQ by transmitting her own identifying string with a
signal of SOH (hex value 01h). Once this has been acknowledged by the
swooner they proceed with the chat session.
Once a chat session is underway, the strings being transmitted back and
forth will always take the form:
signal ASCII SOH (hex value 01h)
block# One character block number, in the range of space to tilde
type Block type (see below)
data Data, if any
ETX
crc
As before, the CRC is a two-byte CRC of everything after the signal and
before the ETX, and is sent high-byte first.
The types of blocks which may be transmitted are:
Mnemonic Value Meaning
======= ===== =======
STX 02h Chat text to be displayed. Data contains text.
EM 19h End chat session.
GS 1Dh Receive files. Data contains filenames.
ESC 1Bh Pause for local MS-DOS session.
CR 0Dh Resume after local MS-DOS session.
DLE 10h Requesting remote MS-DOS session.
Denied or ended by five or more CANs (value 18h)
Duplicate blocks (as indicated by the block number) are ignored. In any
collision the swooner sends a NAK (hex value 15h) and tries again, while
the swain pauses to listen.